<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>

</body>
<script>
  //替换demo
  const words = ['java', 'js'];
  const string = '我喜欢在后盾人学习java和js知识';

  let str2 = words.reduce((a, b) => {
    return a.replace(b, `<a href='?w=${b}'>${b}</a>`)
  }, string);

  console.log(str2)
  document.body.innerHTML = str2

  //使用foreach的弊端，foreach是一个consume消费者，接受一个参数，无返回值，所以非常别扭，单是
  //reduce 就比较适合，reduce是一个briaryFunction（忘咋拼了，二元函数）,(T,T)=>T，并且还可以有初始值，然后依次便利集合,会保留上一次的状态，
  //并且还有返回值，就适合做这个替换demo
  let temp;
  words.forEach(i => temp = string.replace(i, `<a href='?w=${i}'>${i}</a>`))
  console.log(temp)
  // document.body.innerHTML = temp
</script>
</html>